shuffling things around and adding syntactic sugar