functions and install improved