in progress
functions function, just the vardecls need more work