adding more functionality and changes