caution- don't use the following variable names - (these are reserved or used by atom internally in the global scope) component interface