Added __str__ methods, extracted methods and added interrupt handling