making it abstract
new class for gravity
refactor due to gravity changes