Source code for interview. It's not so good but all in one commit.