more helpers, need to fix bug