provide a function for pushing instead of exposing internal structure