A lot of changes

#58
#59
#57