Adding tests and proper structure.