Working from ground up to add useful prototype functions