appending implementation