basic frontend
refactored
refactored