implements append functions