(refactor) create factory classes
(bug) sqaush ghost elements