this feels hacky