working program! minus actual graphics