cleanup and adding more utility