move over more to .c