more use cases, fix tail and head calls