reorganzation
remove comments
added an overload for Selecti