Initial revision.
WIP