Added cool features. Made code worse :)