Critical success factors for the implementation of a knowledge management system in a knowledge-based engineering firm