loads of back pop implementation