added usage handling