updating namespace and making more generic