Improved version, basic functionality is present.