TODO: fix function call