First cut of functionality - it does everything I need it to