fix function type to rvalue so it can actually return the value