added more implementations
added disable warnings