Organize, cleanup method implementations a bit, finish first verison methods.