rewrote some parts, a bit more functionality
much better now