backwards print is closer, need to fix add_at and add_first