Refacorig LEAP class and subclasses