functiondeclaration, needs work