complete implementation

Added functions and descriptions