Full functionality added. Doesn't work yet