fully functioning version