got rid of object oriented, just functional design now