First version. Most definitely a work in progress.