removing ! on select. will cause problems if returns nil