use single instead of literal in some places for optimization