Implement working version

Signed-off-by: Michael Barton <mail@michaelbarton.me.uk>