started reflection. HAVE NOT REFACTORED YET.