Rewritten behaviour cases, added new features, cleaned useless code. Starting from scratch.