add functionality and data