improve documentation and code readibility