added credits for code I took from other libs