base logic finished; final touches needed still