added more functionality, reliability