basic implementation complete. NOW FOR MEGA BUG FIXING!!!!