remove shitty argument resolution and implement call stack and local context