restructured and added usage