First version, seems to basically work..