this takes way too long