class Container implements IContainer {

    @Override
    public void register(final IKey key, final IResolveDependencyStrategy strategy)
            throws RegistrationException {
        if (key == null) {
            throw new RegistrationException("Key can't be null");
        }
        if (strategy == null) {
            throw new RegistrationException("Strategy can't be null");
        }

        try {
            storage.put(key, strategy);
        } catch (Exception e) {
            throw new RegistrationException("Registration of dependency failed for key " + key, e);
        }
    }

    public  Container();

}