#104 updated, working with some bugs.