some type signatures
refactor monadic access
unary operators