better prop generating