uhmmm stared refactoring. COMPLETELY BROKEN ATM