refactor
use diamond operators if possible