Reworked inner mechanisms, implemented suspend operation and added some more tests