maybe i should find a better way