moved to using classes