not the best solution because use buildin libs