Initial version of code.
refactor