lint free, needs docs