needs to be abspath