allow fonctionnal style instanciation