added hsla function and automatic canvas creation