got basic functionality down, need to cleanup